package com.eastcode.base.service;

import java.util.List;

import com.eastcode.base.view.BaseView;
import com.googlecode.objectify.Key;

public interface BaseService {

	/**
	 * 泛型保存方法
	 * 
	 * @param entity
	 * @return
	 */
	public <T> Key<T> save(T entity);

	/**
	 * 
	 * 通过实体类型及主键获取实体
	 * 
	 * @param entity
	 * @param id
	 * @return
	 */
	public <T> T findObjectByKey(Class<T> entityClass, long id);

	/**
	 * 查询列表
	 * 
	 * @param entity
	 * @param view
	 * @return
	 */
	public <T> List<T> searchList(Class<T> entity, BaseView view);

	/**
	 * 根据实体及主键删除实体
	 * 
	 * @param entityClass
	 * @param id
	 * @return
	 */
	public <T> int deleteObjectByKey(Class<T> entityClass, long id);

	/**
	 * 删除实体
	 * 
	 * @param entity
	 * @return
	 */
	public <T> int deleteObject(T entity);
	
	/**
	 * 删除多条数据
	 * 
	 * @param entityClass
	 * @param ids
	 * @return
	 */
	public <T> int deleteObjectBykeys(Class<T> entityClass, String ids);
}